package com.qaml.mes.device.api;


import com.earth.page.PageResponse;
import com.qaml.mes.device.dto.eqp.*;
import com.qaml.mes.device.vo.eqp.*;

import java.util.List;

/**
 * <p>
 * 检保任务表 服务类
 * </p>
 *
 * @author leikai
 * @since 2024-02-27
 */
public interface CheckUpkeepRecordService {

    /**
     * 首页统计
     *
     * @param userId
     * @return
     */
    HomePageCountVO countDoing(String userId);

    PageResponse<CheckUpkeepRecordAppVO> orderList(CheckUpkeepRecordAppDTO recordAppDTO);

    /**
     * 检保快速提交
     *
     * @param checkUpkeepRecordDTO
     */
    void checkUpkeepFastCommit(CheckUpkeepRecordDTO checkUpkeepRecordDTO);

    /**
     * 根据检保任务编号获取检保任务详情
     *
     * @param checkUpkeepRecordId
     * @return
     */
    CheckUpkeepRecordVO getByCheckUpkeepRecordId(String checkUpkeepRecordId);

    /**
     * 检保提交
     *
     * @param checkUpkeepRecordDTO
     */
    void checkUpkeepCommit(CheckUpkeepRecordDTO checkUpkeepRecordDTO);

    /**
     * 检保提交并维修
     *
     * @param checkUpkeepRecordDTO
     */
    void checkUpkeepCommitRepair(CheckUpkeepRecordDTO checkUpkeepRecordDTO);

    /**
     * 复核提交
     *
     * @param recheckCommitDTO
     */
    void recheckCommit(RecheckCommitDTO recheckCommitDTO);

    /**
     * 检保任务分页查询
     *
     * @param checkUpkeepRecordListDTO
     * @return
     */
    PageResponse<CheckUpkeepRecordVO> pageList(CheckUpkeepRecordListDTO checkUpkeepRecordListDTO);

    /**
     * 复核驳回
     *
     * @param turnDownReqDTO
     */
    void recheckTurnDown(CheckUpkeepRecordTurnDownReqDTO turnDownReqDTO);

    /**
     * 归档提交
     *
     * @param archiveCommitDTO
     */
    void archiveCommit(ArchiveCommitDTO archiveCommitDTO);

    /**
     * 归档驳回
     *
     * @param archiveTurnDownDTO
     */
    void archiveTurnDown(ArchiveTurnDownDTO archiveTurnDownDTO);

    /**
     * 快速归档
     *
     * @param checkUpkeepArchiveDTO
     */
    void checkUpkeepArchive(CheckUpkeepArchiveDTO checkUpkeepArchiveDTO);

    /**
     * 点检归档列表
     *
     * @param yearMonth
     * @return
     */
    CheckArchiveVO checkArchiveList(String yearMonth);

    /**
     * 保养归档列表
     *
     * @return
     */
    List<UpkeepArchiveVO> upkeepArchiveList(String yearMonth);

    /**
     * app检保单-查询详情
     *
     * @param checkUpkeepRecordId
     * @return
     */
    CheckUpkeepRecordAppVO getCheckUpkeepRecordDetailApp(CheckUpkeepRecordIdDTO checkUpkeepRecordId);
}
